package com.gengzp.rpc.core;

import java.lang.reflect.Method;

/**
 * @ClassName RpcRemoteTransactionCoreFunc
 * @Description rpc远程事务核心方法接口
 * @Author gengzp
 * @Date 2025/8/22 21:47
 */
public interface RpcRemoteTransactionCoreFunc {

    /**
     * 提交远程事务
     *
     * @param serviceName   远程服务名
     * @param interfaceName 接口名
     * @param method        方法信息
     * @param args          参数列表
     */
    void doCommitRemoteTransaction(String serviceName, String interfaceName, Method method, Object[] args);

    /**
     * 执行远程事务回滚逻辑
     */
    void doExecuteRemoteTransactionRollback();

    /**
     * 清除掉缓存中的远程事务
     */
    void doClearRemoteTransactionCache();

}
